#pragma once

#include "BaseInc.h"

NAMESPACE_CORE_BEGIN

#define RAND_CHAR_LOWER 0x1
#define RAND_CHAR_UPER 0x2
#define RAND_CHAR_NUMBER 0x4

#define RAND_CHAR_ALL RAND_CHAR_LOWER | RAND_CHAR_UPER | RAND_CHAR_NUMBER

class CORE_API _CRandom
{
public :
	static void Seed(uint_32 uiSeed);
	static float_32 GetRandomFloat32(float_32 lowBound, float_32 highBound);
	static int_32 GetRandomInt32();
	static int_32 GetRandomInt32(int_32 uiMin, int_32 uiMax);

	static char_16 GetRandomChar16(uint_x uiFlags = RAND_CHAR_ALL);
	static void GetRandomText(char_16 * szOut, uint_x uiMinLen = 0, uint_x uiMaxLen = 10);
};

NAMESPACE_CORE_END
